home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d3 / db4less3.arc / JOB.FRG < prev    next >
Text File  |  1990-06-16  |  5KB  |  248 lines

  1. * Program............: D:\DBSYS\CLASSES\BT4W\JOB.FRG
  2. * Date...............: 11-17-88
  3. * Versions...........: dBASE IV, Report 1
  4. *
  5. * Notes:
  6. * ------
  7. * Prior to running this procedure with the DO command
  8. * it is necessary use LOCATE because the CONTINUE
  9. * statement is in the main loop.
  10. *
  11. *-- Parameters
  12. PARAMETERS gl_noeject, gl_plain, gl_summary, gc_heading, gc_extra
  13. ** The first three parameters are of type Logical.
  14. ** The fourth parameter is a string.  The fifth is extra.
  15. PRIVATE _peject, _wrap
  16.  
  17. *-- Test for no records found
  18. IF EOF() .OR. .NOT. FOUND()
  19.    RETURN
  20. ENDIF
  21.  
  22. *-- turn word wrap mode off
  23. _wrap=.F.
  24.  
  25. IF _plength < 9
  26.    SET DEVICE TO SCREEN
  27.    DEFINE WINDOW gw_report FROM 7,17 TO 11,62 DOUBLE
  28.    ACTIVATE WINDOW gw_report
  29.    @ 0,1 SAY "Increase the page length for this report."
  30.    @ 2,1 SAY "Press any key ..."
  31.    x=INKEY(0)
  32.    DEACTIVATE WINDOW gw_report
  33.    RELEASE WINDOW gw_report
  34.    RETURN
  35. ENDIF
  36.  
  37. _plineno=0          && set lines to zero
  38. *-- NOEJECT parameter
  39. IF gl_noeject
  40.    IF _peject="BEFORE"
  41.       _peject="NONE"
  42.    ENDIF
  43.    IF _peject="BOTH"
  44.       _peject="AFTER"
  45.    ENDIF
  46. ENDIF
  47.  
  48. *-- Set-up environment
  49. ON ESCAPE DO prnabort
  50. IF SET("TALK")="ON"
  51.    SET TALK OFF
  52.    gc_talk="ON"
  53. ELSE
  54.    gc_talk="OFF"
  55. ENDIF
  56. gc_space=SET("SPACE")
  57. SET SPACE OFF
  58. gc_time=TIME()      && system time for predefined field
  59. gd_date=DATE()      && system date  "    "    "     "
  60. gl_fandl=.F.        && first and last page flag
  61. gl_prntflg=.T.      && Continue printing flag
  62. gl_widow=.T.        && flag for checking widow bands
  63. gn_length=LEN(gc_heading)  && store length of the HEADING
  64. gn_level=2          && current band being processed
  65. gn_page=_pageno     && grab current page number
  66.  
  67.  
  68. *-- Initialize calculated variables.
  69. IFCOMPLETE=""
  70. IFINVOICED=""
  71. COMPDAYS=0
  72. IFPAID=""
  73.  
  74. *-- Set up procedure for page break
  75. IF _pspacing > 1
  76.    gn_atline=_plength - (_pspacing + 1)
  77. ELSE
  78.    gn_atline=_plength - 1
  79. ENDIF
  80. ON PAGE AT LINE gn_atline EJECT PAGE
  81.  
  82. *-- Print Report
  83.  
  84. PRINTJOB
  85.  
  86. *-- Assign initial values to calculated variables.
  87. IFCOMPLETE=iif(completed,'COMPLETED','NOT COMPLETE')
  88. IFINVOICED=IIF(INVOICED,'INVOICED','NOT INVOICED')
  89. COMPDAYS=iif(completed,compdate-startdate,0)
  90. IFPAID=IIF(PAID,'PAID','NOT PAID')
  91.  
  92. IF gl_plain
  93.    ON PAGE AT LINE gn_atline DO Pgplain
  94. ELSE
  95.    ON PAGE AT LINE gn_atline DO Pgfoot
  96. ENDIF
  97.  
  98. DO Pghead
  99.  
  100. gl_fandl=.T.        && first physical page started
  101.  
  102. *-- File Loop
  103. DO WHILE FOUND() .AND. .NOT. EOF() .AND. gl_prntflg
  104.    DO Upd_Vars
  105.    *-- Detail lines
  106.    IF .NOT. gl_summary
  107.       DO Detail
  108.    ENDIF
  109.    CONTINUE
  110. ENDDO
  111.  
  112. IF gl_prntflg
  113. ELSE
  114.    DO Reset
  115.    RETURN
  116. ENDIF
  117.  
  118. ON PAGE
  119.  
  120. ENDPRINTJOB
  121.  
  122. DO Reset
  123. RETURN
  124. * EOP: D:\DBSYS\CLASSES\BT4W\JOB.FRG
  125.  
  126. *-- Update summary fields and/or calculated fields in the detail band.
  127. PROCEDURE Upd_Vars
  128. IFCOMPLETE=iif(completed,'COMPLETED','NOT COMPLETE')
  129. IFINVOICED=IIF(INVOICED,'INVOICED','NOT INVOICED')
  130. COMPDAYS=iif(completed,compdate-startdate,0)
  131. IFPAID=IIF(PAID,'PAID','NOT PAID')
  132. RETURN
  133. * EOP: Upd_Vars
  134.  
  135. *-- Set flag to get out of DO WHILE loop when escape is pressed.
  136. PROCEDURE prnabort
  137. gl_prntflg=.F.
  138. RETURN
  139. * EOP: prnabort
  140.  
  141. PROCEDURE Pghead
  142. ?
  143. IF .NOT. gl_plain
  144.    ?? "Page No." AT 0,
  145.    ?? _pageno PICTURE "999" AT 9
  146. ENDIF
  147. *-- Print HEADING parameter ie. REPORT FORM <name> HEADING <expC>
  148. IF .NOT. gl_plain .AND. gn_length > 0
  149.    ?? " "
  150.    ?? gc_heading FUNCTION "I;V"+;
  151.    LTRIM(STR(_rmargin-_lmargin-(_pcolno*2+2)))
  152. ENDIF
  153. IF .NOT. gl_plain
  154.    ?
  155. ENDIF
  156. IF .NOT. gl_plain
  157.    ?? gd_date AT 0
  158.    ?
  159. ENDIF
  160. ?? "JOB REPORT" AT 34
  161. ?
  162. ?
  163. ?? "JOBID" AT 0,
  164. ?? "JOB DESCRIPTION" AT 7,
  165. ?? "CUSTOMER" AT 49,
  166. ?? "BID PRICE" AT 66
  167. ?
  168. ?? ;
  169. "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒";
  170. + "▒▒▒▒▒▒▒▒▒";
  171. AT 0
  172. ?
  173. RETURN
  174. * EOP: Pghead
  175.  
  176.  
  177. PROCEDURE Detail
  178. IF 13 < _plength
  179.    IF gl_widow .AND. _plineno+12 > gn_atline
  180.       EJECT PAGE
  181.    ENDIF
  182. ENDIF
  183. ?
  184. ?? JOBID FUNCTION "T" AT 0,
  185. ?? JOBDESC FUNCTION "T" PICTURE "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" AT 8,
  186. ?? CUSTCODE FUNCTION "T" AT 49,
  187. ?? BIDPRICE PICTURE "9999999.99" AT 66
  188. ?
  189. ?
  190. DEFINE BOX FROM 19 TO 46 HEIGHT 9 SINGLE
  191. DEFINE BOX FROM 49 TO 63 HEIGHT 9 DOUBLE
  192. ?
  193. ?
  194. ?? "Start Date" AT 21,
  195. ?? STARTDATE AT 37,
  196. ?? IFCOMPLETE FUNCTION "T" PICTURE "XXXXXXXXXXX" AT 51
  197. ?
  198. ?
  199. ?? "Completion Date" AT 21,
  200. ?? COMPDATE AT 37,
  201. ?? IFINVOICED FUNCTION "T" PICTURE "XXXXXXXXXXX" AT 51
  202. ?
  203. ?
  204. ?? "Completion Days" AT 21,
  205. ?? COMPDAYS PICTURE "999" AT 39,
  206. ?? IFPAID FUNCTION "T" PICTURE "XXXXXXXX" AT 51
  207. ?
  208. ?
  209. ?
  210. ?
  211. RETURN
  212. * EOP: Detail
  213.  
  214.  
  215. PROCEDURE Pgfoot
  216. PRIVATE _box
  217. gl_widow=.F.         && disable widow checking
  218. EJECT PAGE
  219. *-- is the page number greater than the ending page
  220. IF _pageno > _pepage
  221.    GOTO BOTTOM
  222.    SKIP
  223.    gn_level=0
  224. ENDIF
  225. IF .NOT. gl_plain .AND. gl_fandl
  226.    DO Pghead
  227. ENDIF
  228. gl_widow=.T.         && enable widow checking
  229. RETURN
  230. * EOP: Pgfoot
  231.  
  232. *-- Process page break when PLAIN option is used.
  233. PROCEDURE Pgplain
  234. PRIVATE _box
  235. EJECT PAGE
  236. RETURN
  237. * EOP: Pgplain
  238.  
  239. *-- Reset dBASE environment prior to calling report
  240. PROCEDURE Reset
  241. SET SPACE &gc_space.
  242. SET TALK &gc_talk.
  243. ON ESCAPE
  244. ON PAGE
  245. RETURN
  246. * EOP: Reset
  247.  
  248.